<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="../../../vue.js"></script>
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <p>{{cat}}</p>
      <button @click="change">change</button></button>
     
    </div>
    <script>
      const vm = new Vue({
        el: '#app',
        data() {
          return {
            cat: {
              name: 'mimi',
              age: 2,
              like: 'fish',
              girlfriend: {
                name: 'xiaomi',
              },
            },
          };
        },
        methods: {
          change() {
            // 修改属性能触发响应式
            // this.cat.age++;

            // 给对象增加属性--不能触发响应式
            // this.cat.sex = 'boy';
            // // this.$forceUpdate();//强制更新触发响应式

            // // 删除对象属性--不能触发响应式
            // delete this.cat.girlfriend;

            //  vm.$set()或者Vue.set()可以用来做新增，vm.$delete或者Vue.delete()可以用来做删除 并且内部帮我们完成响应式
            /*格式 Vue.set(this.数据名，'新增属性名'，'新增属性值')
                Vue.delete(this.数据名，'要删除的属性'名)
            */ 
            Vue.set(this.cat,'sex','boy')
            Vue.delete(this.cat,'girlfriend')
          },
        },
      });
    </script>
  </body>
</html>
